home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / dspgv.z / dspgv
Text File  |  1996-03-14  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. DDDDSSSSPPPPGGGGVVVV((((3333FFFF))))                                                            DDDDSSSSPPPPGGGGVVVV((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DSPGV - compute all the eigenvalues and, optionally, the eigenvectors of
  10.      a real generalized symmetric-definite eigenproblem, of the form
  11.      A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE DSPGV( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK, INFO )
  15.  
  16.          CHARACTER     JOBZ, UPLO
  17.  
  18.          INTEGER       INFO, ITYPE, LDZ, N
  19.  
  20.          DOUBLE        PRECISION AP( * ), BP( * ), W( * ), WORK( * ), Z( LDZ,
  21.                        * )
  22.  
  23. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  24.      DSPGV computes all the eigenvalues and, optionally, the eigenvectors of a
  25.      real generalized symmetric-definite eigenproblem, of the form
  26.      A*x=(lambda)*B*x,  A*Bx=(lambda)*x,  or B*A*x=(lambda)*x.  Here A and B
  27.      are assumed to be symmetric, stored in packed format, and B is also
  28.      positive definite.
  29.  
  30.  
  31. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  32.      ITYPE   (input) INTEGER
  33.              Specifies the problem type to be solved:
  34.              = 1:  A*x = (lambda)*B*x
  35.              = 2:  A*B*x = (lambda)*x
  36.              = 3:  B*A*x = (lambda)*x
  37.  
  38.      JOBZ    (input) CHARACTER*1
  39.              = 'N':  Compute eigenvalues only;
  40.              = 'V':  Compute eigenvalues and eigenvectors.
  41.  
  42.      UPLO    (input) CHARACTER*1
  43.              = 'U':  Upper triangles of A and B are stored;
  44.              = 'L':  Lower triangles of A and B are stored.
  45.  
  46.      N       (input) INTEGER
  47.              The order of the matrices A and B.  N >= 0.
  48.  
  49.      AP      (input/output) DOUBLE PRECISION array, dimension
  50.              (N*(N+1)/2) On entry, the upper or lower triangle of the
  51.              symmetric matrix A, packed columnwise in a linear array.  The j-
  52.              th column of A is stored in the array AP as follows:  if UPLO =
  53.              'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j; if UPLO = 'L', AP(i
  54.              + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
  55.  
  56.              On exit, the contents of AP are destroyed.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDSSSSPPPPGGGGVVVV((((3333FFFF))))                                                            DDDDSSSSPPPPGGGGVVVV((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      BP      (input/output) DOUBLE PRECISION array, dimension (N*(N+1)/2)
  75.              On entry, the upper or lower triangle of the symmetric matrix B,
  76.              packed columnwise in a linear array.  The j-th column of B is
  77.              stored in the array BP as follows:  if UPLO = 'U', BP(i + (j-
  78.              1)*j/2) = B(i,j) for 1<=i<=j; if UPLO = 'L', BP(i + (j-1)*(2*n-
  79.              j)/2) = B(i,j) for j<=i<=n.
  80.  
  81.              On exit, the triangular factor U or L from the Cholesky
  82.              factorization B = U**T*U or B = L*L**T, in the same storage
  83.              format as B.
  84.  
  85.      W       (output) DOUBLE PRECISION array, dimension (N)
  86.              If INFO = 0, the eigenvalues in ascending order.
  87.  
  88.      Z       (output) DOUBLE PRECISION array, dimension (LDZ, N)
  89.              If JOBZ = 'V', then if INFO = 0, Z contains the matrix Z of
  90.              eigenvectors.  The eigenvectors are normalized as follows:  if
  91.              ITYPE = 1 or 2, Z**T*B*Z = I; if ITYPE = 3, Z**T*inv(B)*Z = I.
  92.              If JOBZ = 'N', then Z is not referenced.
  93.  
  94.      LDZ     (input) INTEGER
  95.              The leading dimension of the array Z.  LDZ >= 1, and if JOBZ =
  96.              'V', LDZ >= max(1,N).
  97.  
  98.      WORK    (workspace) DOUBLE PRECISION array, dimension (3*N)
  99.  
  100.      INFO    (output) INTEGER
  101.              = 0:  successful exit
  102.              < 0:  if INFO = -i, the i-th argument had an illegal value
  103.              > 0:  DPPTRF or DSPEV returned an error code:
  104.              <= N:  if INFO = i, DSPEV failed to converge; i off-diagonal
  105.              elements of an intermediate tridiagonal form did not converge to
  106.              zero.  > N:   if INFO = n + i, for 1 <= i <= n, then the leading
  107.              minor of order i of B is not positive definite.  The
  108.              factorization of B could not be completed and no eigenvalues or
  109.              eigenvectors were computed.
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.